const WebSocket = require('ws');

// 创建一个 WebSocket 服务器并监听 8080 端口
const wss = new WebSocket.Server({ port: 8080 }, () => {
  console.log('WebSocket server is running on port 8080');
});

// 存储所有连接的客户端
const clients = new Set();

// 当一个客户端连接到服务器时，监听该连接
wss.on('connection', function connection(ws) {
  console.log('A new client connected.');

  clients.add(ws);

  // 当客户端发送消息时，监听 'message' 事件
  ws.on('message', function incoming(message) {
    console.log(`收到消息: ${message}`);        // 将接收到的消息原样返回给客户端    ws.send(`You sent: ${message}`);
    // ws.send(message);
    // 将接收到的消息广播给所有连接的客户端
    wss.clients.forEach(function each(client) {
      if (client.readyState === WebSocket.OPEN) {
        client.send(message);
      }
    });
  });

  // 当连接关闭时，监听 'close' 事件
  ws.on('close', function close() {
    console.log('Connection closed');
    clients.delete(ws);
  });

  // 可以在这里添加其他事件监听器或逻辑
});
